/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.sofp.ClasseMapeada;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Daniel
 */
@Entity
@Table(name = "despesa")
@NamedQueries({
    @NamedQuery(name = "Despesa.findAll", query = "SELECT d FROM Despesa d"),
    @NamedQuery(name = "Despesa.findByIddespesa", query = "SELECT d FROM Despesa d WHERE d.iddespesa = :iddespesa"),
    @NamedQuery(name = "Despesa.findByNumdocumentodespesa", query = "SELECT d FROM Despesa d WHERE d.numdocumentodespesa = :numdocumentodespesa"),
    @NamedQuery(name = "Despesa.findByDtemissaodespesa", query = "SELECT d FROM Despesa d WHERE d.dtemissaodespesa = :dtemissaodespesa"),
    @NamedQuery(name = "Despesa.findByDtvencimentodespesa", query = "SELECT d FROM Despesa d WHERE d.dtvencimentodespesa = :dtvencimentodespesa"),
    @NamedQuery(name = "Despesa.findByDtpagamentodespesa", query = "SELECT d FROM Despesa d WHERE d.dtpagamentodespesa = :dtpagamentodespesa"),
    @NamedQuery(name = "Despesa.findByVlrdespesa", query = "SELECT d FROM Despesa d WHERE d.vlrdespesa = :vlrdespesa"),
    @NamedQuery(name = "Despesa.findByVlrdescontodespesa", query = "SELECT d FROM Despesa d WHERE d.vlrdescontodespesa = :vlrdescontodespesa"),
    @NamedQuery(name = "Despesa.findByVlrjurodespesa", query = "SELECT d FROM Despesa d WHERE d.vlrjurodespesa = :vlrjurodespesa"),
    @NamedQuery(name = "Despesa.findByVlrpagodespesa", query = "SELECT d FROM Despesa d WHERE d.vlrpagodespesa = :vlrpagodespesa"),
    @NamedQuery(name = "Despesa.findByVlrtotalpagodespesa", query = "SELECT d FROM Despesa d WHERE d.vlrtotalpagodespesa = :vlrtotalpagodespesa"),
    @NamedQuery(name = "Despesa.findByStatusdespesa", query = "SELECT d FROM Despesa d WHERE d.statusdespesa = :statusdespesa")})
public class Despesa implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "IDDESPESA")
    private Integer iddespesa;
    @Column(name = "NUMDOCUMENTODESPESA")
    private String numdocumentodespesa;
    @Column(name = "DTEMISSAODESPESA")
    @Temporal(TemporalType.DATE)
    private Date dtemissaodespesa;
    @Column(name = "DTVENCIMENTODESPESA")
    @Temporal(TemporalType.DATE)
    private Date dtvencimentodespesa;
    @Column(name = "DTPAGAMENTODESPESA")
    @Temporal(TemporalType.DATE)
    private Date dtpagamentodespesa;
    @Column(name = "VLRDESPESA")
    private Double vlrdespesa;
    @Column(name = "VLRDESCONTODESPESA")
    private Double vlrdescontodespesa;
    @Column(name = "VLRJURODESPESA")
    private Double vlrjurodespesa;
    @Column(name = "VLRPAGODESPESA")
    private Double vlrpagodespesa;
    @Column(name = "VLRTOTALPAGODESPESA")
    private Double vlrtotalpagodespesa;
    @Column(name = "STATUSDESPESA")
    private Integer statusdespesa;
    @JoinColumn(name = "IDPAGTOREBTODESPESA", referencedColumnName = "IDPAGTOREBTO")
    @ManyToOne
    private Tipopagtorecbto idpagtorebtodespesa;
    @JoinColumn(name = "CODIGOPESSOADESPESA", referencedColumnName = "CODIGOPESSOA")
    @ManyToOne
    private Pessoa codigopessoadespesa;
    @JoinColumn(name = "IDTIPOCONTADESPESA", referencedColumnName = "IDTIPOCONTA")
    @ManyToOne
    private Tipoconta idtipocontadespesa;

    public Despesa() {
    }

    public Despesa(Integer iddespesa) {
        this.iddespesa = iddespesa;
    }

    public Integer getIddespesa() {
        return iddespesa;
    }

    public void setIddespesa(Integer iddespesa) {
        this.iddespesa = iddespesa;
    }

    public String getNumdocumentodespesa() {
        return numdocumentodespesa;
    }

    public void setNumdocumentodespesa(String numdocumentodespesa) {
        this.numdocumentodespesa = numdocumentodespesa;
    }

    public Date getDtemissaodespesa() {
        return dtemissaodespesa;
    }

    public void setDtemissaodespesa(Date dtemissaodespesa) {
        this.dtemissaodespesa = dtemissaodespesa;
    }

    public Date getDtvencimentodespesa() {
        return dtvencimentodespesa;
    }

    public void setDtvencimentodespesa(Date dtvencimentodespesa) {
        this.dtvencimentodespesa = dtvencimentodespesa;
    }

    public Date getDtpagamentodespesa() {
        return dtpagamentodespesa;
    }

    public void setDtpagamentodespesa(Date dtpagamentodespesa) {
        this.dtpagamentodespesa = dtpagamentodespesa;
    }

    public Double getVlrdespesa() {
        return vlrdespesa;
    }

    public void setVlrdespesa(Double vlrdespesa) {
        this.vlrdespesa = vlrdespesa;
    }

    public Double getVlrdescontodespesa() {
        return vlrdescontodespesa;
    }

    public void setVlrdescontodespesa(Double vlrdescontodespesa) {
        this.vlrdescontodespesa = vlrdescontodespesa;
    }

    public Double getVlrjurodespesa() {
        return vlrjurodespesa;
    }

    public void setVlrjurodespesa(Double vlrjurodespesa) {
        this.vlrjurodespesa = vlrjurodespesa;
    }

    public Double getVlrpagodespesa() {
        return vlrpagodespesa;
    }

    public void setVlrpagodespesa(Double vlrpagodespesa) {
        this.vlrpagodespesa = vlrpagodespesa;
    }

    public Double getVlrtotalpagodespesa() {
        return vlrtotalpagodespesa;
    }

    public void setVlrtotalpagodespesa(Double vlrtotalpagodespesa) {
        this.vlrtotalpagodespesa = vlrtotalpagodespesa;
    }

    public Integer getStatusdespesa() {
        return statusdespesa;
    }

    public void setStatusdespesa(Integer statusdespesa) {
        this.statusdespesa = statusdespesa;
    }

    public Tipopagtorecbto getIdpagtorebtodespesa() {
        return idpagtorebtodespesa;
    }

    public void setIdpagtorebtodespesa(Tipopagtorecbto idpagtorebtodespesa) {
        this.idpagtorebtodespesa = idpagtorebtodespesa;
    }

    public Pessoa getCodigopessoadespesa() {
        return codigopessoadespesa;
    }

    public void setCodigopessoadespesa(Pessoa codigopessoadespesa) {
        this.codigopessoadespesa = codigopessoadespesa;
    }

    public Tipoconta getIdtipocontadespesa() {
        return idtipocontadespesa;
    }

    public void setIdtipocontadespesa(Tipoconta idtipocontadespesa) {
        this.idtipocontadespesa = idtipocontadespesa;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (iddespesa != null ? iddespesa.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Despesa)) {
            return false;
        }
        Despesa other = (Despesa) object;
        if ((this.iddespesa == null && other.iddespesa != null) || (this.iddespesa != null && !this.iddespesa.equals(other.iddespesa))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "br.com.sofp.ClasseMapeada.Despesa[iddespesa=" + iddespesa + "]";
    }

}
